package lzupdater.log;

import java.util.ArrayList;
import java.util.List;

//LZRosterUpdater, a java client to update LZRoster
//Copyright (C) 2008 Fraskor from Krasus (e-mail: fraskor@gmail.com)
//
//This file is part of LZRosterUpdater.
//
//LZRosterUpdater is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

/**
 * 
 * @author Fraskor
 */
public enum LoggerLevel {
	ALL    ("[ALL]    ", 5),
	ERROR  ("[ERROR]  ", 4),
	WARNING("[WARNING]", 3),
	INFO   ("[INFO]   ", 2),
	DEBUG  ("[DEBUG]  ", 1);

	private final String header;
	private final int level;

	private LoggerLevel(String h, int level) {
		header = h;
		this.level = level;
	}

	public String getHeader() {
		return header;
	}

	public static LoggerLevel setFrom(String lvl) {
		for (LoggerLevel l : values()) {
			if (l != ALL && lvl.equalsIgnoreCase(l.toString()))
				return l;
		}
		return LoggerLevel.INFO;
	}

	public boolean isGreaterOrEqualTo(LoggerLevel loggerLevel) {
		if (this == ALL) return true;
		if (loggerLevel == ALL) return false;
		return level >= loggerLevel.level;
	}
	
	public static LoggerLevel[] getValuesForComboBox() {
		List<LoggerLevel> list = new ArrayList<LoggerLevel>();
		for (LoggerLevel level : values()) {
			if (level != ALL) list.add(level);
		}
		return list.toArray(new LoggerLevel[list.size()]);
	}
}